package com.springboot.demo.linked;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * 双向节点
 *
 * @author supu
 * @create 2018-06-04 14:12
 **/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
public class DoubleNode<T> {
    /**
     * 数据
     */
    private T data;
    /**
     * 上一个节点指针
     * @ToString.Exclude 注解为了解决lombok下循环依赖toString方法报java.lang.StackOverflowError异常，此异常在debug模式下才能看到
     */
    @ToString.Exclude
    private DoubleNode previous;
    /**
     * 下一个指针节点
     * @ToString.Exclude 注解为了解决lombok下循环依赖toString方法报java.lang.StackOverflowError异常，此异常在debug模式下才能看到
     */
    @ToString.Exclude
    private DoubleNode next;

    public DoubleNode(T data) {
        this.data = data;
    }
}
